<?php

require_once('EmpenhoDAO.php');

class Empenho
{
     private $id;               // Chave-prim�ria do empenho no banco de dados     
     private $reserva;          // Objeto referente a reserva orcamentaria
     private $numNotaEmpenho;    // numero da nota de empenho
     private $valorEmpenho;		// valor do empenho
     private $fornecedor;		//Objeto referente ao fornecedor
     private $situacao;         //situacao do empenho AP- anulado parcialmente AT anulado Totalmente E- empenhado R - reforcado 
     private $srp;              // indicativa para saber se a modalidade é o pregão srp ou nao
     private $dataEmpenho;      // data do empenho
     private $dao;              // Objeto para acesso ao banco de dados

     public function __set( $var, $val )
     {
            $this->$var = $val;
     }

     public function __get( $var )
     {
            return $this->$var;
     }

     public function __construct( $id = NULL, $reserva = NULL ,$numNotaEmpenho=NULL ,$valorEmpenho=NULL ,$fornecedor=NULL, $srp= NULL,$dataEmpenho=NULL, $situacao=NULL)
     {
            $this->id = $id;
            $this->reserva = $reserva;
            $this->numNotaEmpenho = $numNotaEmpenho;
            $this->valorEmpenho   = $valorEmpenho;
            $this->fornecedor     = $fornecedor;
            $this->srp 	          = $srp;
            $this->dataEmpenho    = $dataEmpenho;
            $this->situacao       = $situacao;
            $this->dao = new EmpenhoDAO();
     }
     
	public function Salvar()
	{
		$result = $this->dao->CadastrarEmpenho($this);
		return $result;
	}
	
	public function Alterar()
	{
		$result = $this->dao->AlterarEmpenho($this);
		return $result;
	}
	
	public function Excluir($id)
	{
		$result = $this->dao->ExcluirEmpenho($id);
		return $result;
	}
	
	public function CarregarEmpenho($reservaId)
	{
		$result = $this->dao->LoadEmpenhos($reservaId);
		return $result;
	}
        
	public function CarregarEmpenhoPorFonte($fonteId)
	{
		$result = $this->dao->LoadEmpenhosPorFonte($fonteId);
		return $result;
	}
        	
	public function CarregarEmpenhoPorProcesso($processo)
	{
		$result = $this->dao->LoadEmpenhosPorProcesso($processo);
		return $result;	
	}
	
	public function CarregarEmpenhoPorNotaEmpenho($numNotaEmpenho)
	{
		$resulte = $this->dao->LoadEmpenhosPorNumNotaEmpenho($numNotaEmpenho);				
		return $resulte;	
	}

	public function CarregarEmpenhoPorUnidade($unidadeId)
	{
		$result = $this->dao->LoadEmpenhosPorUnidade($unidadeId);
		return $result;	
	}

	public function CarregarEmpenhoPorFonteUnidade($fonteId, $unidadeId)
	{
		$result = $this->dao->LoadEmpenhosPorFonteUnidade($fonteId, $unidadeId);
		return $result;	
	}
        
	public function CarregarEmpenhoPorId($id)
	{
		$result = $this->dao->LoadEmpenho($id);
		return $result;
	}

	public function ReforcarEmpenho($empenhoId,$valorReforco,$descricaoReforco)
	{
		$result = $this->dao->ReforcarEmpenho($empenhoId,$valorReforco,$descricaoReforco);
		return $result;
	}
	
	public function AnulacaoEmpenho($empenhoId,$tipoAnulacao,$valor,$descricao)
	{
		$result = $this->dao->AnulacaoEmpenho($empenhoId,$tipoAnulacao,$valor,$descricao);
		return $result;
	}
	
	public function getSaldoEmpenho($empenhoId)
	{
		$result = $this->dao->LoadSaldo($empenhoId);
		return $result;
	}
	
	public function existeEmpenhoParaReserva($reservaId){
		$result = $this->dao->existeEmpenhoParaReserva($reservaId);
		return $result;
	}
		
	
}
?>
